Some distributed storage systems require an assembling client to obtain content fragments from many servers in parallel. As the number of the assembling clients increases, it becomes harder to deliver contents at rates approaching the aggregated capacity of the distributed storage system, and the value of a well-designed load balancing algorithm increases. This is especially true when the various servers of the distributed storage system feature different bandwidth capabilities.